diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c
index d20e28d..e15a296 100644
--- a/drivers/led/led-uclass.c
+++ b/drivers/led/led-uclass.c
@@ -22,7 +22,7 @@
 	if (ret)
 		return ret;
 	uclass_foreach_dev(dev, uc) {
-		struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+		struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 		/* Ignore the top-level LED node */
 		if (uc_plat->label && !strcmp(label, uc_plat->label))
@@ -96,5 +96,5 @@
 UCLASS_DRIVER(led) = {
 	.id		= UCLASS_LED,
 	.name		= "led",
-	.per_device_platdata_auto	= sizeof(struct led_uc_plat),
+	.per_device_plat_auto	= sizeof(struct led_uc_plat),
 };
diff --git a/drivers/led/led_bcm6328.c b/drivers/led/led_bcm6328.c
index dbe9ab1..bf8207d 100644
--- a/drivers/led/led_bcm6328.c
+++ b/drivers/led/led_bcm6328.c
@@ -147,7 +147,7 @@
 
 static int bcm6328_led_probe(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
@@ -222,7 +222,7 @@
 		if (ret)
 			return ret;
 
-		uc_plat = dev_get_uclass_platdata(dev);
+		uc_plat = dev_get_uclass_plat(dev);
 		uc_plat->label = label;
 	}
 
diff --git a/drivers/led/led_bcm6358.c b/drivers/led/led_bcm6358.c
index 4bf4a09..3e57cdf 100644
--- a/drivers/led/led_bcm6358.c
+++ b/drivers/led/led_bcm6358.c
@@ -113,7 +113,7 @@
 
 static int bcm6358_led_probe(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
@@ -192,7 +192,7 @@
 		if (ret)
 			return ret;
 
-		uc_plat = dev_get_uclass_platdata(dev);
+		uc_plat = dev_get_uclass_plat(dev);
 		uc_plat->label = label;
 	}
 
diff --git a/drivers/led/led_bcm6858.c b/drivers/led/led_bcm6858.c
index 0b1379d..fbf46a1 100644
--- a/drivers/led/led_bcm6858.c
+++ b/drivers/led/led_bcm6858.c
@@ -154,7 +154,7 @@
 
 static int bcm6858_led_probe(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
@@ -229,7 +229,7 @@
 		if (ret)
 			return ret;
 
-		uc_plat = dev_get_uclass_platdata(dev);
+		uc_plat = dev_get_uclass_plat(dev);
 		uc_plat->label = label;
 	}
 
diff --git a/drivers/led/led_cortina.c b/drivers/led/led_cortina.c
index b8760be..f9e497f 100644
--- a/drivers/led/led_cortina.c
+++ b/drivers/led/led_cortina.c
@@ -132,7 +132,7 @@
 
 static int ca_led_ofdata_to_platdata(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
@@ -165,22 +165,22 @@
 
 static int cortina_led_probe(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 
 	/* Top-level LED node */
 	if (!uc_plat->label) {
-		struct cortina_led_platdata *platdata = dev_get_platdata(dev);
+		struct cortina_led_platdata *plat = dev_get_platdata(dev);
 		u32 reg_value, val;
 		u16 rate1, rate2;
 
-		if (!platdata->ctrl_regs)
+		if (!plat->ctrl_regs)
 			return -EINVAL;
 
 		reg_value = 0;
 		reg_value |= LED_CLK_POLARITY;
 
-		rate1 = platdata->rate1;
-		rate2 = platdata->rate2;
+		rate1 = plat->rate1;
+		rate2 = plat->rate2;
 
 		val = rate1 / 16 - 1;
 		rate1 = val > LED_MAX_HW_BLINK ?
@@ -194,7 +194,7 @@
 		reg_value |= (rate2 & LED_BLINK_RATE2_MASK) <<
 					LED_BLINK_RATE2_SHIFT;
 
-		cortina_led_write(platdata->ctrl_regs, reg_value);
+		cortina_led_write(plat->ctrl_regs, reg_value);
 
 	} else {
 		struct cortina_led_cfg *priv = dev_get_priv(dev);
@@ -273,7 +273,7 @@
 						 node, &dev);
 		if (ret)
 			return ret;
-		uc_plat = dev_get_uclass_platdata(dev);
+		uc_plat = dev_get_uclass_plat(dev);
 		uc_plat->label = label;
 	}
 
@@ -292,7 +292,7 @@
 	.ofdata_to_platdata = ca_led_ofdata_to_platdata,
 	.bind = cortina_led_bind,
 	.probe = cortina_led_probe,
-	.platdata_auto	= sizeof(struct cortina_led_platdata),
+	.plat_auto	= sizeof(struct cortina_led_platdata),
 	.priv_auto	= sizeof(struct cortina_led_cfg),
 	.ops = &cortina_led_ops,
 };
diff --git a/drivers/led/led_gpio.c b/drivers/led/led_gpio.c
index fe18ae3..67ece3c 100644
--- a/drivers/led/led_gpio.c
+++ b/drivers/led/led_gpio.c
@@ -57,7 +57,7 @@
 
 static int led_gpio_probe(struct udevice *dev)
 {
-	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev);
+	struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
 	struct led_gpio_priv *priv = dev_get_priv(dev);
 	int ret;
 
@@ -106,7 +106,7 @@
 						 node, &dev);
 		if (ret)
 			return ret;
-		uc_plat = dev_get_uclass_platdata(dev);
+		uc_plat = dev_get_uclass_plat(dev);
 		uc_plat->label = label;
 	}
 
